﻿using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.SpecificServiceType;
using BCEntity.TMS.SpecificServiceType;

namespace BCService.TMS.SpecificServiceTypeOverWrite
{
    public interface ISpecificServiceTypeOverWriteService
    {
        /// <summary>
        /// 添加新特殊服务类型纪录
        /// </summary>
        /// <param name="specificServiceTypeOverWriteRequestDto"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        SpecificServiceTypeOverWriteDto Add(SpecificServiceTypeOverWriteRequestDto specificServiceTypeOverWriteRequestDto, AdminDto admin);

        /// <summary>
        /// 获取特殊服务类型记录--[分页]
        /// </summary>
        /// <param name="admin"></param>
        /// <param name="ProvinceCode"></param>
        /// <param name="CityCode"></param>
        /// <param name="CountyCode"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>

        PageableList<SpecificServiceTypeViewDto> GetList(AdminDto admin, string ProvinceCode, string CityCode, string CountyCode, int pageIndex, int pageSize);

        /// <summary>
        /// 获取基本特殊服务类型纪录
        /// </summary>
        /// <param name="isEnabled"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        PageableList<SpecificServiceTypeDto> GetListBase(bool? isEnabled, int pageIndex, int pageSize);


        /// <summary>
        /// 修改特殊服务类型记录
        /// </summary>
        /// <param name="specificServiceTypeOverWritePutDto"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        SpecificServiceTypeViewDto Update(SpecificServiceTypeOverWritePutDto specificServiceTypeOverWritePutDto, AdminDto admin);

        /// <summary>
        /// 启用/禁用
        /// </summary>
        /// <param name="admin"></param>
        /// <param name="overWriteId"></param>
        /// <param name="enable"></param>
        /// <returns></returns>
        SpecificServiceTypeOverWriteDto UpdateEnable(AdminDto admin, int overWriteId, bool enable);
    }
}